"""
基础 CoderGraph 示例

这个示例展示了如何创建和使用 CoderGraph 来处理编程相关的任务。
"""

import asyncio
import datetime

from inscode_agent.graph.coder import CoderGraph
from inscode_agent.models.graph import GraphRequest, AgentStepLog


async def create_coder_graph() -> CoderGraph:
    """创建 CoderGraph 实例"""
    return CoderGraph(
        parse_tool_args=True,
        verbose=True
    )


async def run_coder_example():
    """运行 CoderGraph 示例"""
    # 创建图形
    graph = await create_coder_graph()

    # 创建请求
    request = GraphRequest(
        question=f"{datetime.datetime.now()}：请帮我创建一个简单的 Python 函数来计算斐波那契数列",
        thread_id="coder_example_003",
        verbose=True
    )

    # 执行请求并处理响应
    async for message in graph.astream(request):
        if isinstance(message, AgentStepLog) and message.meta["finish"] == True:
            print(message.output)


if __name__ == "__main__":
    asyncio.run(run_coder_example())
